// 1.练习结构体数组排序　　 
// 	从键盘输入5个学生的信息（姓名、学号、成绩）,
// 	存入一个结构体数组中，计算平均分，并按成绩
// 	高低排序并输出.
#include <stdio.h>


typedef struct student
{
    // 数据域
    char name[32];                 // 学生的姓名
    int number;                 // 学生的学号
    float grade;                // 学生的成绩

}STU, *SP;

int main(int argc, char **argv)
{
    STU s[5];
    int i = 0;
    int j = 0;
    STU temp;
    float avg = 0;


    // 获取键盘输入
    printf("输入\n");
    for (i = 0; i < 5; i++)
    {
        scanf("%s %d %f", s[i].name, &s[i].number, &s[i].grade);
    }

    // 排序
    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 4 - i; j++)
        {
            if (s[j].grade < s[j + 1].grade)
            {
                temp = s[j];
                s[j] = s[j + 1];
                s[j + 1] = temp;
            }
        }
    }

    // 输出
    for (i = 0; i < 5; i++)
    {
        printf("%s %d %f\n", s[i].name, s[i].number, s[i].grade);
    }

    // 计算平均值
    for (i = 0; i < 5; i++)
    {
        avg += s[i].grade;
    }
    avg /= i;
    printf("%f\n", avg);
    return 0;
}